﻿@{
    ViewBag.Title = "Index";
}
<h1>
    Tipo Comentario
</h1>
<input type="button" id="btnNuevo" class="boton" value="Nuevo" />
<div>
    &nbsp;</div>
<div id="divNuevo" style="display: none;">
</div>
<div id="divEdicion" style="display: none;">
</div>
<div>
    &nbsp;</div>
<table id="tablaListado" cellpadding="0" cellspacing="0" class="mGrid" style="width: 40%;
    border-collapse: collapse;">
    <thead>
        <tr>
            <th>
                N°
            </th>
            <th align="center">
                Descripcion
            </th>
            <th align="center">
                Modificar
            </th>
            <th align="center">
                Eliminar
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td colspan="4">
                No se encontraron registros.
            </td>
        </tr>
    </tbody>
</table>
<script>
    $(function () {

        function ObtenerLista() {

            $.ajax({
                url: '@Url.Action("Listar", "TipoComentario")',
                success: CrearTabla,
                dataType: 'json',
                type: 'POST'
            });

        }

        function CrearTabla(data) {

            $('#tablaListado tbody').html('');

            if (data.length > 0) {

                $.each(data, function (index) {

                    var tr = $(document.createElement('tr'));

                    tr.append($('<td></td>').text(++index))
                        .append($('<td></td>').text(this.Descripcion))
                        .append($('<td></td>').append($('<a Id=' + this.IdTipoComentario + ' class="alinkEdicion"><img src="../../Content/themes/base/baseImages/Edit_01.png" /></a>')))
                        .append($('<td></td>').append($('<a Id=' + this.IdTipoComentario + ' class="alinkEliminacion"><img src="../../Content/themes/base/baseImages/Delete_01.png" /></a>')));

                    $('#tablaListado tbody').append(tr);

                });

            }
            else {
                alert('No se encontraron registros');
            }
        };

        function RenderizarDivModificacion(html) {

            $('#divEdicion').html(html);

            $('#btnModificar').click(ActualizarClick);

            $('#btnCancelarModificar').click(CancelarModificarClick);

            $('#divEdicion').show('slow');

            $('#tablaListado').attr('disabled', true);

            UnDelegarEventosGrid();
        }

        

        ObtenerLista();

        DelegarEventosGrid();

        function ActualizarClick() {

            var idTipoComentario = $('#tblActualizar #hdnId').val();
            var descripcion = $('#tblActualizar #txtDescripcion').val();

            if(descripcion && descripcion != '')
            {
                $.ajax({
                    url: '@Url.Action("PostActualizar", "TipoComentario")',
                    data: { 'Id': idTipoComentario, 'Descripcion': descripcion },
                    success: ActualizarSuccess,
                    dataType: 'json',
                    type: 'POST'
                });  
            }
            else
            {
                alert('Debe ingresar una descripción');
            }
            
        };


        function CancelarModificarClick() {
            OcultarDivEdicion();
            DelegarEventosGrid();
        }

        function OcultarDivEdicion(afterSlow) {

            $('#tablaListado').attr('disabled', false);

            if(afterSlow) 
                $('#divEdicion').hide('slow', afterSlow);
            else
                $('#divEdicion').hide('slow');


        }

        function ActualizarSuccess(data) {

            OcultarDivEdicion(NotificarActualizacion);

        }

        function NotificarActualizacion() {
            alert('Registro Modificado');
            ObtenerLista();
            DelegarEventosGrid();
        }

        function DelegarEventosGrid()
        {
           $('#tablaListado').delegate('a.alinkEliminacion', 'click', function () {
            var idTipoComentario = $(this).attr('Id');
            var resultado = confirm('Esta seguro de eliminar el siguiente registro');

                if (resultado) {
                    EliminarREgistro(idTipoComentario);
                }
            });

            $('#tablaListado').delegate('a.alinkEdicion', 'click', function () {

                var idTipoComentario = $(this).attr('Id');

                $.ajax({
                    url: '@Url.Action("Actualizar", "TipoComentario")',
                    data: { 'Id': idTipoComentario },
                    success: RenderizarDivModificacion,
                    dataType: 'html',
                    cache: false
                });

            });
        
         
        }


        function UnDelegarEventosGrid()
        {
            $('#tablaListado').undelegate('a.alinkEliminacion', 'click');

            $('#tablaListado').undelegate('a.alinkEdicion', 'click');
        }

        

        function EliminarREgistro(idTipoComentario) {
            $.ajax({
                url: '@Url.Action("PostEliminar", "TipoComentario")',
                data: { 'Id': idTipoComentario, },
                success: EliminarSuccess,
                dataType: 'json',
                type: "POST"
            });
        }

        function EliminarSuccess(){
            alert('Registro Eliminado');
            ObtenerLista();
        }


        $('#btnNuevo').click(NuevoClick);

        function NuevoClick()
        {
            $.ajax({
                url: '@Url.Action("Registrar", "TipoComentario")',
                success: RenderizarDivNuevo,
                dataType: 'html'
            });
        }

        
        function RenderizarDivNuevo(html) {

            $('#divNuevo').html(html);

            $('#btnRegistrar').click(RegistrarClick);

            $('#btnCancelarRegistrar').click(CancelarRegistrarClick);

            $('#divNuevo').show('slow');

            $('#tablaListado').attr('disabled', true);

            UnDelegarEventosGrid();
        }

        function OcultarDivNuevo(afterSlow) {

            $('#tablaListado').attr('disabled', false);

            if(afterSlow) 
                $('#divNuevo').hide('slow', afterSlow);
            else
                $('#divNuevo').hide('slow');


        }

        function CancelarRegistrarClick () {
            OcultarDivNuevo();
            DelegarEventosGrid();
        }

        function RegistrarClick()
        {

            var descripcion = $('#tblRegistrar #txtDescripcion').val();

            if(descripcion && descripcion != '')
            {
                $.ajax({
                    url: '@Url.Action("PostRegistrar", "TipoComentario")',
                    data: { 'Descripcion': descripcion, },
                    success: RegistrarSuccess,
                    dataType: 'json',
                    type: "POST"
                });
            }
            else{
                alert('Debe ingresar una descripción');
            }

            
        }

        function RegistrarSuccess(data)
        {
            OcultarDivNuevo(NotificarRegistro);
        }

        function NotificarRegistro() {
            alert('Registro Ingresado');
            ObtenerLista();
            DelegarEventosGrid();
        }
    });
</script>
